//同以目录下的文件更名：
const fs = require("fs");
const path = require("path");
const os = require("os");
const { addAbortSignal } = require("stream");
const { start } = require("repl");
// 包含当前文件夹所有内容的数组
let allFiles = fs.readdirSync(__dirname);
// 更名操作
function my_rename(oldName, newName) {
  fs.rename(oldName, newName, function (err) {
    if (err) {
      throw err;
    }

    // console.log("rename is done!");
  });
}
// 验证结尾后缀是否为真。str文件的名字。appoint文件后缀的名字
function my_validationEnd(str, appoint) {
  // 不区分大小写全部转换成小写。
  str = str.toLowerCase();
  let tempArr = str.split(".");
  let endStr = tempArr[tempArr.length - 1];
  if (appoint === endStr) {
    return true;
  }
  return false;
}
// 过滤数组的方法，返回我想要的文件类型的数组。第一个参数文件数组。第二个参数后缀名，字符串。
function type_arr(arr, typeStr) {
  let newArr = [];
  for (let i in arr) {
    if (my_validationEnd(arr[i], typeStr)) {
      newArr.push(arr[i]);
    }
  }
  return newArr;
}

// 把a00b.txt更名为a-b.txt
function getAssArr(fileType) {
  // 所有该格式文件的数组 只剩下mkv视频的文件数组
  let typeArray = type_arr(allFiles, fileType);
  return typeArray;
}
function my_rename_to_h265(fileType, assFileType) {
  // 所有该格式文件的数组 只剩下mkv视频的文件数组
  let typeArray = type_arr(allFiles, fileType);
  // ass数组
  let assArr = getAssArr(assFileType);
  typeArray.forEach((element, index) => {
    /*  if(element.toLowerCase().indexOf('h265')!==-1){
            return;
        }
            // aaa.bbb.ccc.mkv*/
    let lastPointIndex = element.lastIndexOf(".");
    // let startStr=element.slice(0,lastPointIndex)
    // 包含. 文件后缀名字
    let endStr = element.slice(lastPointIndex);
    // ass的后缀名字
    let lastPointIndex2 = assArr[index].lastIndexOf(".");
    // ass的文件名 不包含后缀
    let startStr2 = assArr[index].slice(0, lastPointIndex2);
    // console.log(startStr,endStr);
    // let tempStrArr = element.split('.')
    // my_rename(element, element + ' ' + suffix + '.' + tempStrArr[tempStrArr.length - 1])
    // my_rename(element, startStr+' '+suffix+endStr)
    my_rename(element, startStr2 + endStr);
  });
  console.log("已经重命名成" + assArr[0] + "!");
}
// 把所有flv的视频的名字添加到一个txt文件里面
function my_rename_to_txt(fileType) {
  // 所有该格式文件的数组 只剩下mkv(fileType的格式)视频的文件数组
  let typeArray = type_arr(allFiles, fileType);
  // ass数组
  // let assArr=getAssArr(assFileType)
  typeArray.forEach((element, index) => {
    /*  if(element.toLowerCase().indexOf('h265')!==-1){
            return;
        }
            // aaa.bbb.ccc.mkv*/
    let lastPointIndex = element.lastIndexOf(".");
    // let startStr=element.slice(0,lastPointIndex)
    // 包含. 文件后缀名字
    let endStr = element.slice(lastPointIndex);
    let startStr = element.slice(0, lastPointIndex);
    // console.log('element',startStr);
    // my_rename(element, startStr2+endStr)
    my_appendFile("test55555.txt", startStr+'\r\n');
  });
  console.log("已经把所有该类型文件名子添加到了txt文件里面!");
}
// console.log(getAssArr('txt'));
// 第二项一般是ass，第一项一般是flv
// my_rename_to_h265('flv','ass')
my_rename_to_txt("flv");

// 把我要的JS格式的文件全部追加复制到一个新的文件里面。目录，格式，新文件名字
function my_appendFile(newFile, content) {
  // 比如要把所有js文件放到newFile.js文件里面。那么要排除它本身
  fs.appendFileSync(newFile, content);
}
// my_appendFile('test333.txt','js')
